

package main.new_2024.month_07;


import java.util.ArrayList;
import java.util.List;

/**
 * @Description: todo 3033. 修改矩阵
 * 给你一个下标从 0 开始、大小为 m x n 的整数矩阵 matrix ，新建一个下标从 0 开始、名为 answer 的矩阵。
 * 使 answer 与 matrix 相等，接着将其中每个值为 -1 的元素替换为所在列的 最大 元素。
 * 返回矩阵 answer 。
 *
 * @Author: Take-off
 * @Date: 1:00 PM 2024/2/27
 * @Param:
 * @return:
 **/
public class Solution0705 {

    //修改矩阵
    public int[][] modifiedMatrix(int[][] matrix) {
        int m = matrix.length;
        int n = matrix[0].length;
        //最大值
        int[] maxValue = new int[n];
        //存储 -1
        List<List<Integer>> lists = new ArrayList<>();
        //遍历
        for (int i =0;i<m;i++){
            List<Integer> integers = new ArrayList<>();
            for (int j = 0;j<n;j++){
                int temp = matrix[i][j];
                if (temp <0){
                    integers.add(j);
                }else {
                    maxValue[j] = Math.max(maxValue[j],temp);
                }
            }
            lists.add(integers);
        }
        for (int i = 0;i<m;i++){
            List<Integer> integers = lists.get(i);
            if (integers.size() >0){
                for (Integer temp:integers){
                    matrix[i][temp] = maxValue[temp];
                }
            }
        }
        return matrix;
    }

    public static void main(String[] args) {
        Solution0705 test = new Solution0705();
    }


}

